
CONECTING TRANSMISSION:
==========================================================================
T O P S E C R E T
E Y E S - O N L Y D I S P A T C H
D E S T R O Y A F T E R R E A D I N G
X-FILE INQUIRY #875110-6249
Viedzm1n Alias Darkman
FAQ version 0.4 B
L A S T U P D A T E D : 28 SEPTEMBER 1 9 9 7
==========================================================================
===========================================================================
Greetings mortals !
Witam w kolejnym faq ,dzis zajmiemy sie glownie phreakingiem...
nie bede tu marnowal kb na smuty typu ze pisze to w celach edukacyjnych,
ze nie ponosze odpowiedzialnosci za skutki itp.
I. Najpierw pokaze wam w jaki sposob mozna grzebac w ...faxach
i sekretarkach:
1. Wymagania: Na poczatek musimy dysponowac tonowym telefonem, ale te maja
prawie wszyscy. Trick ten dziala na wszystkich telefaxach
( ja testowalem glownie na modelach Panasonic ) oraz wiekszosci sekretarek.
2. Hunting:
Gdy juz znajdziemy ofiare, to najlepiej dzwonic do niej w czasie jej
nieobecnosci, (choc niekoniecznie) wtedy to wlaczana jest sekretara ,
a nawet jesli nie to wlaczy sie po 20 sygnalach :). Gdy juz mamy sygnal
aby nagrac jakis message , wsciskamy szybko 1 1 1, powinien zmienic sie
sygnal i juz jestesmy w domu.
3.I've got the power...:
Teraz to tylko zabawa: wciskajac cyfry 1..9 mamy rozne opcje!
jesli chcemy przejsc do innej to trzeba wscisnac * (gwiazdke) aby
zresetowac .
Np. jesli chcemy podsluchiwac co dzieje sie w
pomieszczeniu to naciskamy 5 lub 6 , opcja ta daje takze mozliwosc
wysylania dzwieku przez glosnik faxu.
Mozna tez zmienic tresc sekretarki ,lub odsluchac nagrane wiadomosci
( klawisze 3,4 )Wkrotce podam dokladnie rozpisane kody do
poszczegolnych opcji i modeli faxow. (te przyklady powyzej dzialaja
na wiekszosci :) ).
UWAGA! DZIALA TYLKO NA DEFAULTOWYCH USTAWIENIACH!
II. Podam teraz inne PhoneCheat:
1.Jakis czas temu centrale roznych partyline zbijaly kupe szmalu (btw: teraz maja konkurencje ]
w postaci audiotele :) ) na ....instytucjach panstwowych ! Otoz dzwonilo sie np.
na Pogotowie ( numer chyba kazdy zna :) ) rozlaczalo i szybko wykrecalo
wlasciwy numer. Teraz wiekszosc juz ma protection ale zawsze mozna
sprobowac , na wioskach dziala .
2. Istnieje tez pewna sztuczka aby zapewnic "niesmiertelnosc" kartom telefonicznym .
wycinamy pasek z karty, nagrywamy na magnetofonie wielosladowym i wtedy naklejasz na
zuzyta karte .( Ponoc dziala tez tylko po owinieciu karty tasma video)
(support by User Jama)
3.Mozna tez pokryc karte lakierm lecz karcie musi byc kilka ostatnich impulsow,
a lakier trzeba rozprowadzic jednym pewnym pociagnieciem pedzelka .
(support by bTh)
4. Najszybszy lecz i najbardziej chamski sposob na karte...
Szukamy jakies obleganej budki telefonicznej...bierzemy gume do zucia
lub zaostrzona zapalke i zaklejamy wylot karty telefonicznej (musi mocno
sie trzymac). Ktos kto wejdzie do naszej budki-pulapki srogo sie rozcaruje
gdy bedzie chcial wybrac karte, zobaczy tylko na wyswietlaczu "Automat
zepsuty" i nic.... Gdy gosc wyjdzie zrezygnowany odklejamy gume i mamy karte!
5. Czesto budki stoja na zdezelowanych stojakach, czasami nawet
drwenianych. Po odkreceniu kilku srobek mozna sie dostac do kabli
do ktorych podlaczamy swoj aparat i dzwonimy na jakies 0700 :)
(support by hellfire)
6. Automaty z Coca-Cola (support by Hellfire)
Trzeba znalezc sobie automat ktoru przyjmuje 5 zlotowki
i wrzucic mu stare 20zl. Automat wypluje puszke z
napojem i wyda raszte z ...5zl! :)). Automatow tych
mozna uzywac tez jako rozmieniaczy na "grube", wrzucamy
mu np. cala kieszen 10 groszowek, kazemy potem oddac
pieniadze, a on oddaje na juz grubymi.
III. IRC again..
Hmmm chyba w kazdym faq znajduja sie jakies info o irc.
1. Restricted: -r +iw juz nie dziala na zadnym ze znanych serwerow:(
(oczywiscie only polskich) lecz mozna to olac wklepujac :
/server mops.uci.agh.edu.pl 4440 mozna tez uzyc severa ir.bt.net
IV. Callbacki.
Kazdy chcialbym miec calling for free z domu ....
Ja znam 4 mozliwosci :
1. Duzo osob dialuje z pracy lub uczelni
2. Zalatwic sobie robote w tpsa (praktycznie goscie maja phona za grosze
lub darmoche.
3. Zlozyc boxa...jednak malo kto slyszal dzialajacych w Polsce boxach,
kazdy tez radzi zlozyc inny box. Ja glownie slysze ze niby to dzialaja
silver boxy ( wkrotce jak zloze to napisze wreszcie prawde o boxach pl).
4. Callabacki .
Zajme sie tym ostatnim, callback to numery 0800.... ktore po odpowiednim
zalogowaniu odzwaniaja do ciebie (btw: lecz latwo cie namierzyc gdyz na
serwerze zostaje twoj numer !). Podam tu numery i psswd jakie mi sie udalo
zebrac, ale zaznaczam ze czesc hasel mogla juz zostac zmieniona .
-0-80020043 login:adam2 psswd:b34fr0
-0-80020041 login:unknown psswd:unknown
-0-80020034 login:koliber psswd:koliber
-0-80020019 login:unknown psswd:unknown
-0-80020866 login:ppp Psswd:ppp
Jesli nie lyknie wam numerkow dodajcie jescze przed numerkiem 48
Rzucam ponizej programik do callbacku...zobaczcie...potestujcie...
------------------------CUT HERE--------------------------------------
*
* callbacks.c -- X11 callbacks for ghostview.
* Copyright (C) 1992 Timothy O. Theisen
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Author: Tim Theisen Systems Programmer
* Internet: tim@cs.wisc.edu Department of Computer Sciences
* UUCP: uwvax!tim University of Wisconsin-Madison
* Phone: (608)262-0438 1210 West Dayton Street
* FAX: (608)262-9777 Madison, WI 53706
*/
/* This file is part of the hacked version of the ghostview package */
/* which is distributed under the terms of the gnu license. The */
/* modification referred to above is by Tanmoy Bhattacharya, */
/* on Nov 17, 1994. Neither the modification, */
/* nor the original program provides any warranty. */
#include
#ifndef BUFSIZ
#define BUFSIZ 1024
#endif
#ifdef VMS
#define getenv _getenv
#endif
extern char *getenv();
#include
#include
#include
#include
#include
#include
#include
#include
#include "Ghostview.h"
#include "gv.h"
#include "ps.h"
#include "pdf.h"
int pagehistory[1024], pageindex=0;
/* Start application folding up by Destroying the top level widget. */
/* The application exits when the last interpreter is killed during */
/* a destroy callback from ghostview widgets. */
void
quit_ghostview(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XtDestroyWidget(toplevel);
}
/* Popup a window. */
void
popup(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
positionpopup((Widget)client_data);
XtPopup((Widget)client_data, XtGrabNone);
XRaiseWindow(XtDisplay((Widget)client_data), XtWindow((Widget)client_data));
}
/* Popup a dialog box. */
void
popup_dialog(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
#ifdef SELFILE
Widget button;
String okay, cancel;
String name, init_path;
Arg args[1];
FILE* fp;
struct stat sbuf;
extern FILE *XsraSelFile();
button = XtNameToWidget(dialog, "cancel");
if (button) {
XtSetArg(args[0], XtNlabel, &cancel);
XtGetValues(button, args, ONE);
}
button = XtNameToWidget(dialog, "okay");
if (button) {
XtSetArg(args[0], XtNlabel, &okay);
XtGetValues(button, args, ONE);
}
#endif
mode = (int) client_data;
switch (mode) {
case PRINT_WHOLE:
case PRINT_MARKED:
SetDialogPrompt(dialog, app_res.print_prompt);
if (app_res.default_printer)
SetDialogResponse(dialog, app_res.default_printer);
else
ClearDialogResponse(dialog);
popup(w, (XtPointer)dialogpopup, call_data);
break;
case OPEN:
#ifdef SELFILE
if (filename && strcmp(filename, "-")) init_path = filename;
else init_path = NULL;
fp = XsraSelFile(toplevel, app_res.open_prompt, okay, cancel,
app_res.open_fail, init_path, "r", NULL, &name);
if (fp == NULL) break;
if (oldfilename) XtFree(oldfilename);
oldfilename = filename;
filename = name;
if (psfile) fclose(psfile);
psfile = fp;
stat(filename, &sbuf);
mtime = sbuf.st_mtime;
new_file(0);
show_page(0);
#else
SetDialogPrompt(dialog, app_res.open_prompt);
if (filename && strcmp(filename, "-"))
SetDialogResponse(dialog, filename);
else
ClearDialogResponse(dialog);
popup(w, dialogpopup, call_data);
#endif
break;
case SAVE:
#ifdef SELFILE
fp = XsraSelFile(toplevel, app_res.save_prompt, okay, cancel,
app_res.save_fail, "", "w", NULL, &name);
if (fp == NULL) break;
pscopydoc(fp);
fclose(fp);
XtFree(name);
#else
SetDialogPrompt(dialog, app_res.save_prompt);
ClearDialogResponse(dialog);
popup(w, dialogpopup, call_data);
#endif
break;
}
}
/* Explicitly reopen the file. */
void
reopen_file(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
extern int pagehistory[], pageindex;
struct stat sbuf;
int number = current_page;
pdf_clear();
fclose(psfile);
pageindex=0;
XtSetSensitive(backbutton, False);
psfile = fopen(filename, "r");
mtime = sbuf.st_mtime;
if (oldfilename) XtFree(oldfilename);
oldfilename = XtNewString(filename);
new_file(number);
show_page(number);
}
/* Get the selection, if no selection, get the insertion point. */
/* If the new_page is different from the current page show it. */
/* If not at the first page, show the previous page. */
void
prev_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XawTextPosition pos, end;
int new_page;
XawTextGetSelectionPos(toc, &pos, &end);
if (pos == end) { /* Nothing selected */
pos = XawTextGetInsertionPoint(toc);
}
if ((new_page = pos/toc_entry_length) == current_page) {
new_page = current_page - 1;
}
if (new_page < 0) return;
show_page(new_page);
}
void
back_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
extern int pagehistory[], pageindex;
if (pageindex>0)
show_page(pagehistory[--pageindex]);
else
prev_page(w, client_data, call_data);
XtSetSensitive(backbutton, pageindex>0);
return;
}
/* Get the selection, if no selection, get the insertion point. */
/* Show this page. */
void
this_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
if (toc_text) {
XawTextPosition pos, end;
int new_page;
XawTextGetSelectionPos(toc, &pos, &end);
if (pos == end) { /* Nothing selected */
pos = XawTextGetInsertionPoint(toc);
}
new_page = pos/toc_entry_length;
show_page(new_page);
} else {
GhostviewDisableInterpreter(page);
show_page(0);
}
}
/* Get the selection, if no selection, get the insertion point. */
/* If the new_page is different from the current page show it. */
/* If not at the last page, show the next page. */
void
next_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XawTextPosition pos, end;
int new_page = 0;
if (toc_text) {
XawTextGetSelectionPos(toc, &pos, &end);
if (pos == end) { /* Nothing selected */
pos = XawTextGetInsertionPoint(toc);
}
if ((new_page = pos/toc_entry_length) == current_page) {
new_page = current_page + 1;
}
if (new_page >= doc->numpages) return;
}
show_page(new_page);
}
/* Center the viewport over the page */
void
center_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
Arg args[2];
Widget scroll;
float top, shown;
scroll = XtNameToWidget(pageview, "vertical");
if (scroll) {
XtSetArg(args[0], XtNshown, &shown);
XtSetArg(args[1], XtNtopOfThumb, &top);
XtGetValues(scroll, args, TWO);
top = (1.0 - shown) / 2.0;
XtCallCallbacks(scroll, XtNjumpProc, &top);
}
scroll = XtNameToWidget(pageview, "horizontal");
if (scroll) {
XtSetArg(args[0], XtNshown, &shown);
XtSetArg(args[1], XtNtopOfThumb, &top);
XtGetValues(scroll, args, TWO);
top = (1.0 - shown) / 2.0;
XtCallCallbacks(scroll, XtNjumpProc, &top);
}
}
/* Get the selection, if no selection, get the insertion point. */
/* Mark all pages in range, and cause toc to update. */
void
mark_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XawTextPosition begin, end;
int i;
XawTextGetSelectionPos(toc, &begin, &end);
if (begin == end) { /* Nothing selected */
begin = end = XawTextGetInsertionPoint(toc);
} else {
end--; /* Sometimes end spills onto next line */
}
for (i = begin/toc_entry_length; i <= end/toc_entry_length; i++) {
toc_text[i*toc_entry_length] = '*';
XawTextInvalidate(toc, i*toc_entry_length, i*toc_entry_length+1);
}
}
/* Get the selection, if no selection, get the insertion point. */
/* Unmark all pages in range, and cause toc to update. */
void
unmark_page(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XawTextPosition begin, end;
int i;
XawTextGetSelectionPos(toc, &begin, &end);
if (begin == end) { /* Nothing selected */
begin = end = XawTextGetInsertionPoint(toc);
} else {
end--; /* Sometimes end spills onto next line */
}
for (i = begin/toc_entry_length; i <= end/toc_entry_length; i++) {
toc_text[i*toc_entry_length] = ' ';
XawTextInvalidate(toc, i*toc_entry_length, i*toc_entry_length+1);
}
}
/* Set new magstep. Reshow the current page if magstep changed. */
void
set_magstep(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
app_res.magstep = (int)client_data;
if (set_new_magstep()) {
layout_ghostview();
show_page(current_page);
}
}
/* Set new orientation. Reshow the current page if orientation changed. */
void
set_orientation(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
app_res.force_orientation = force_setting;
app_res.orientation = (XtPageOrientation) client_data;
if (set_new_orientation(current_page)) {
layout_ghostview();
show_page(current_page);
}
}
/* Swap the landscape labels and change the flag. */
void
swap_landscape(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
Arg args[1];
String s1, s2;
app_res.swap_landscape = !app_res.swap_landscape;
XtSetArg(args[0], XtNlabel, &s1);
XtGetValues(landscapebutton, args, ONE);
s1 = XtNewString(s1);
XtSetArg(args[0], XtNlabel, &s2);
XtGetValues(seascapebutton, args, ONE);
s2 = XtNewString(s2);
XtSetArg(args[0], XtNlabel, s2);
XtSetValues(landscapebutton, args, ONE);
XtSetArg(args[0], XtNlabel, s1);
XtSetValues(seascapebutton, args, ONE);
XtFree(s1);
XtFree(s2);
if (set_new_orientation(current_page)) {
layout_ghostview();
show_page(current_page);
}
}
/* Set new page media. If new page media is different, update app_resources */
/* and redisplay page. */
void
set_pagemedia(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
int new_pagemedia = (int) client_data;
if (new_pagemedia >= base_papersize) {
default_pagemedia = new_pagemedia;
app_res.force_pagemedia = force_setting;
} else {
document_media = new_pagemedia;
force_document_media = force_setting;
}
if (set_new_pagemedia(current_page)) {
layout_ghostview();
show_page(current_page);
}
}
/* track mouse pointer and popup zoom window */
void
track_and_zoom(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
Arg args[20];
Cardinal num_args;
Dimension width, height;
Widget zoom;
Widget zoomform;
Widget zoompage;
Widget zoomdismiss;
FILE *zoomfile;
struct stat sbuf;
GhostviewReturnStruct *p = (GhostviewReturnStruct *)call_data;
int llx;
int lly;
int urx;
int ury;
int bottom_margin;
int left_margin;
int right_margin;
int top_margin;
int i;
int gotopage;
/* locator events have zero width and height */
if ((p->width == 0) || (p->height == 0)) {
char buf[32];
if (!app_res.show_locator) return;
sprintf(buf, "(%d, %d)", p->psx, p->psy);
XtSetArg(args[0], XtNlabel, buf);
XtSetValues(locator, args, ONE);
return;
}
/* If no file, nothing to zoom. */
if (!psfile) return;
/* If in an anchor jump to instead */
if ((gotopage=pdf_page(p->psx,p->psy))>=0) {
if(pageindexpsx - p->width/2;
lly = p->psy - p->height/2;
urx = p->psx + p->width/2;
ury = p->psy + p->height/2;
/* Make sure zoom window doesn't go off the edge of the page */
if (llx < current_llx) {
llx = current_llx;
urx = llx + p->width;
}
if (lly < current_lly) {
lly = current_lly;
ury = lly + p->height;
}
if (urx > current_urx) {
urx = current_urx;
llx = urx - p->width;
}
if (ury > current_ury) {
ury = current_ury;
lly = ury - p->height;
}
if (llx < current_llx) {
llx = current_llx;
}
if (lly < current_lly) {
lly = current_lly;
}
bottom_margin = lly - current_lly;
left_margin = llx - current_llx;
right_margin = current_urx - urx;
top_margin = current_ury - ury;
num_args = 0;
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
XtSetArg(args[num_args], XtNbottom, XtChainBottom); num_args++;
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
XtSetArg(args[num_args], XtNright, XtChainRight); num_args++;
XtSetArg(args[num_args], XtNorientation, current_orientation);
num_args++;
XtSetArg(args[num_args], XtNllx, llx); num_args++;
XtSetArg(args[num_args], XtNlly, lly); num_args++;
XtSetArg(args[num_args], XtNurx, urx); num_args++;
XtSetArg(args[num_args], XtNury, ury); num_args++;
XtSetArg(args[num_args], XtNbottomMargin, bottom_margin);
num_args++;
XtSetArg(args[num_args], XtNleftMargin, left_margin);
num_args++;
XtSetArg(args[num_args], XtNrightMargin, right_margin);
num_args++;
XtSetArg(args[num_args], XtNtopMargin, top_margin); num_args++;
XtSetArg(args[num_args], XtNbottomMargin, bottom_margin);
num_args++;
XtSetFloatArg(args[num_args], XtNxdpi, p->xdpi); num_args++;
XtSetFloatArg(args[num_args], XtNydpi, p->ydpi); num_args++;
if (!toc_text) {
XtSetArg(args[num_args], XtNfilename, filename); num_args++;
}
zoompage = XtCreateManagedWidget("page", ghostviewWidgetClass,
zoomform, args, num_args);
num_ghosts++;
XtAddCallback(zoompage, XtNcallback, track_and_zoom, (XtPointer)0);
XtAddCallback(zoompage, XtNmessageCallback, message, (XtPointer)zoompage);
XtAddCallback(zoompage, XtNdestroyCallback, destroy_ghost,
(XtPointer)zoompage);
num_args = 0;
XtSetArg(args[num_args], XtNfromVert, zoompage); num_args++;
XtSetArg(args[num_args], XtNtop, XtChainBottom); num_args++;
XtSetArg(args[num_args], XtNbottom, XtChainBottom); num_args++;
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
XtSetArg(args[num_args], XtNright, XtChainRight); num_args++;
zoomdismiss = XtCreateManagedWidget("dismiss", commandWidgetClass,
zoomform, args, num_args);
XtAddCallback(zoomdismiss, XtNcallback, destroy, (XtPointer)zoom);
XtSetArg(args[0], XtNwidth, &width);
XtGetValues(zoompage, args, ONE);
XtSetArg(args[0], XtNwidth, width);
XtSetValues(zoomdismiss, args, ONE);
XtRealizeWidget(zoom);
positionpopup(zoom);
num_args = 0;
XtSetArg(args[num_args], XtNwidth, &width); num_args++;
XtSetArg(args[num_args], XtNheight, &height); num_args++;
XtGetValues(zoom, args, num_args);
num_args = 0;
XtSetArg(args[num_args], XtNminWidth, width); num_args++;
XtSetArg(args[num_args], XtNminHeight, height); num_args++;
XtSetArg(args[num_args], XtNmaxWidth, width); num_args++;
XtSetArg(args[num_args], XtNmaxHeight, height); num_args++;
XtSetValues(zoom, args, num_args);
XSetWMProtocols(XtDisplay(zoom), XtWindow(zoom), &wm_delete_window, 1);
XtPopup(zoom, XtGrabNone);
if (toc_text) {
zoomfile = fopen(filename, "r");
if (zoomfile == NULL) return;
GhostviewSendPS(zoompage, zoomfile, doc->beginprolog,
doc->lenprolog, False);
GhostviewSendPS(zoompage, zoomfile, doc->beginsetup,
doc->lensetup, False);
if (doc->pageorder == DESCEND)
i = (doc->numpages - 1) - current_page;
else
i = current_page;
GhostviewSendPS(zoompage, zoomfile, doc->pages[i].begin,
doc->pages[i].len, True);
}
}
/* Process messages from ghostscript */
/* Refresh occurs when window was resized unexpectedly */
void
message(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
int i;
char *error;
if (!strcmp((char *) call_data, "Failed")) {
if ((Widget)client_data == page) {
error = "Error: PostScript interpreter failed in main window.\n\n";
} else {
error = "Error: PostScript interpreter failed in zoom window.\n\n";
}
output(w, NULL, error);
} else if (!strcmp((char *) call_data, "BadAlloc")) {
if ((Widget)client_data == page) {
error =
"Warning: Could not allocate backing pixmap in main window.\n\n";
} else {
error =
"Warning: Could not allocate backing pixmap in zoom window.\n\n";
}
output(w, NULL, error);
} else if (!strcmp((char *) call_data, "Refresh")) {
if (toc_text) {
GhostviewSendPS(w, psfile, doc->beginprolog,
doc->lenprolog, False);
GhostviewSendPS(w, psfile, doc->beginsetup,
doc->lensetup, False);
if (doc->pageorder == DESCEND)
i = (doc->numpages - 1) - current_page;
else
i = current_page;
GhostviewSendPS(w, psfile, doc->pages[i].begin,
doc->pages[i].len, False);
}
}
}
/* Take output from ghostscript and display it in the infotext popup window */
void
output(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
Arg args[2];
XawTextBlock message_block;
message_block.firstPos = 0;
message_block.length = strlen(call_data);
message_block.ptr = call_data;
message_block.format = FMT8BIT;
XawTextDisableRedisplay(infotext);
XtSetArg(args[0], XtNeditType, XawtextAppend);
XtSetValues(infotext, args, ONE);
XawTextReplace(infotext, info_length, info_length, &message_block);
info_length = info_length + message_block.length;
XtSetArg(args[0], XtNeditType, XawtextRead);
XtSetArg(args[1], XtNinsertPosition, info_length);
XtSetValues(infotext, args, TWO);
XawTextEnableRedisplay(infotext);
if (!info_up) XtPopup(infopopup, XtGrabNone);
info_up = True;
}
/* Dismiss popup dialog */
void
okay(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
String name, error;
Widget dialog;
dialog = (Widget)client_data;
name = GetDialogResponse(dialog);
switch (mode) {
case PRINT_WHOLE:
case PRINT_MARKED:
if (error = print_file(name, (mode == PRINT_WHOLE))) {
char *buf = XtMalloc(strlen(error) +
strlen(app_res.print_prompt) + 2);
sprintf(buf, "%s\n%s", error, app_res.print_prompt);
SetDialogPrompt(dialog, buf);
XtFree(error);
XtFree(buf);
} else {
XtPopdown(XtParent(dialog));
}
break;
case OPEN:
if (error = open_file(name)) {
char *buf = XtMalloc(strlen(error) +
strlen(app_res.open_prompt) + 2);
sprintf(buf, "%s\n%s", error, app_res.open_prompt);
SetDialogPrompt(dialog, buf);
XtFree(error);
XtFree(buf);
} else {
XtPopdown(XtParent(dialog));
}
break;
case SAVE:
if (error = save_file(name)) {
char *buf = XtMalloc(strlen(error) +
strlen(app_res.save_prompt) + 2);
sprintf(buf, "%s\n%s", error, app_res.save_prompt);
SetDialogPrompt(dialog, buf);
XtFree(error);
XtFree(buf);
} else {
XtPopdown(XtParent(dialog));
}
break;
}
XtFree(name);
}
/* Dismiss popup window */
void
dismiss(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XtPopdown((Widget)client_data);
if ((Widget)client_data == infopopup) info_up = False;
}
/* Destroy popup window */
void
destroy(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
XtDestroyWidget((Widget)client_data);
}
/* destroy callback for Ghostview widgets. */
/* The disable interpreter call ensures that ghostscript is killed. */
/* One the count goes to 0, we are sure that all forked processes have */
/* been killed and that we can safely exit. */
void
destroy_ghost(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
GhostviewDisableInterpreter((Widget) client_data);
num_ghosts--;
if (num_ghosts) return;
if (dying) old_Xerror(XtDisplay(w), &bomb);
XtDestroyApplicationContext(app_con);
exit(0);
}
--------------------------CUT HERE ------------------------------------
IV. Jak tu qrwa dokopac innemu hackowi????
Wsrod hackerow panuja raczej przyjazne stosunki, wymianiaja zdobyte
doswiadczenia,psswd, itp. Jednak zdarzaja sie zarozumiale typki
ktore maja sie za guru i wqrwiaja innych , szczegolnie nowicjuszy.
Mozna takich gosci latwo zalatwic...bez wlamow.
Miejscem spotkan hackerow jest IRC , tia oni tez lubia se pogaworzyc.
I wlasnie na ircu chca pokazac to jacy sa dobrzy i wogole.
Najwiekszym kandydatem na najgorszego chooja jest chloptas co sie
zwie Spaceman. Ten skurwiel ciagle banuje tp.net na wszystkich
hackerskich kanalach ,stwierdzajac ze tu ma byc kwarantanna .
(qrwa jebany rasista) Gosc tez czesto lubi przygadywac innym itp.
Mnie wqrwil tymi banami. Postanowilem wiec tez zostac takim gnojkiem
i to doslownie, wiec wszedlem sobie na irc jako Spaceman!:)))
Czasem nawet w kilku postaciach jak np. Sp3ceman,spacem4n,sp3cem4n itd.
(wchodzimy w kilku wariantach nickow aby gosc nie mogl uzyc jakiejkolwiek
kombinacji swojego nicka, aha przydalby sie jakis spofer zeby se zmienic
dane, ja nie musialem uzywac bo jestem na tp.net.wroclaw ,space is wroclaw too:)
zreszta mozna puscic bajer ze jestesmy u rodzinki czy cos takiego ).
Tak wiec jak juz jest na kanale full kosmicznych zasrancow to robimy mu obore,
floodujemy, bluzgamy, kickamy, a co najwazniejsze zrazamy do siebie jego
qmpli. Wczesniej przydalby sie jakis wywiad o gosciu ktoreg chcemy zalatwic
na jakich kanalach bywa , w jakiej jest grupie itp. Zreszta mozemy
goscia sami o to wypytac jako jakis lamer np. spacelove lizac mu dupe i
schlebiajac mu . Potem zagadujemy jego qmpli ,itp. Jesli gosc dziala
w jakiejs grupie , jak np. Space w Drome of terror, wymianiamy sie z jej
czlonkami psswd i innymi info, (w zamian dajemy jakas lewe rzeczy).
Zakladamy tez se maila na jakims dupnym serwerku np. spaceman.polbox.com
Gosciom mowimy ze to nasz nowy mail bo stare sa spalone itp.
(nie dosc ze gosc straci korespondencje to jeszcze bedziemy mieli stuff
od jego kolesi). Mozna tez wkopac goscia robiac zjebany wlam na jego konto
i zostawiajac jego namiary (hehe ja moge nawet dac adres domowy space :)) ).
Zapytacie a co z wlasciwym gosciem przeciez on tez bywa na irc.
No tak ale jesli bedzie ich full to kolesie beda zdezorientowani.
I tak nie predko sie kapna kto jest kto :). Btw: Czy wiecie ze Spacemana
juz niema !! hehe chlop musial zmienic nicka ,teraz jest jako Kozmo.
V. Cracking.
Juz od dawna programisci zrezygnowali z wprowadzania zabezpieczen do softu
(szczegolnie do gier) wymagajacego passwordu z manuala , Dzis w erze
multimediow niewielu przecietnych uzytkownikow moze pozwolic sobie na zrzut paru
cedekow na hadeka (czasem tez nie idzie tak latwo ale o tym pozniej ).
Czesto wiec robi sie tzw. CD RIPy. Najczesciej obcinamy gierki z przydlugich
animacji,gadek itp. Mozna robic zerujac pliki lub gdy to nie zadziala
podmienic nazwy pod najkrotszy plik. Np. gdy w jakims tam katalogu MOVIES mamy
pliki : o wielkosciach:
intro.fmv 125 Mb
cutsc1.fmv 67 Mb
cutsc1.fmv 78 Mb
outro.fmv 146 Mb
logo.fmv 12 Mb
to wybieramy najmniejszy plik - logo.fmv, kopiujemy go jako intro.fmv itd.
Jest to troche lamerski sposob ale w niektorych wypadkach jedyny (gdy mamy
popularne formaty animacji typu avi,mov czy fli to spokojnie mozna wyzerowac
pliki). Trzeba tez w konfigu gry zmienic sciezki do katalogu,zawierajacego
sciagniete przez nas pliki, na aktualny katalog znajdujacy sie na naszym dysku.
Jednak czesto program zada cedeka ...coz wtedy trzeba uzyc komendy dosowskiej
subst oraz jakis emulatorek cedeka (np. Fakecd,cdemu2,0cd itp. ).
Piszemy subst [ nazwa napedu ktory ma byc utworzony] [sciezka do plikow ]
np. subst D: C:\gra\cd1
Potem uzywamy emulatora np. cdemu2 d: (czyli nazwa napedu)
Aha niektore uparte programiki sprawdzaja takze nazwe kompaktu...ale znow
pomoze nam dos ,piszemy label i wklepujemy odpowiednia nazwe.
Wszystko byloby cacy jakby mozna wszystkie programiki tak latwo ciac
lecz niestety czesc programikow jest kompresowana w jeden olbrzymi plik
jak np. red alert,diablo czy neverhood, ale o tym to juz napisze w nastepnej
czesci..
..uff.. narazie koniec
COOMING SOON : "100 Sposobow jak krecic panienki na IRC"
" Boxy - prawda czy tylko mit?"
Jesli masz cos intereseujacego co moglbym wrzucic to tego FAQ , masz jakies
pytania, lub chcesz najnowsza wersje , to mailnij do mnie.
==========================================================================
-------> wiedzmin@friko.onet.pl <-----
=========================================================================
Viedzm1n/ "...you can't feel safe, when you are connected in net..."
GREETINGS TO : Erased,Woodpeck,Ashw00d,Lysy,Jojec,As2,bTh,Ult0r,Luk_Skyw,
P0WER,Voodoo,Hackelber,Daworm,Yarpen,Haszak,Miki,Wodzu,AnJa,_mo_,
Daworm,Pan,NON,Hellfire,Jacky and more...
SPACEMAN SUX 4EVER!
C.D.N
DISCONECTED...